package org.example.generics;

import java.util.ArrayList;
import java.util.List;

public class GenericMethod<T> {
    // 定义一个含有泛型的方法
    public <W> String method1(String a, W w) {
        return  "一个含有泛型的方法：" + w + a;
    }
    // 定义一个含有泛型的静态方法
    public static <Z> String method2(Z s) {
        return  "一个含有泛型的静态方法" + s;
    }
    public static <A,C> A method3(List<C> l, A a) {
        return a;
    }
    public static void main(String[] args) {
        // 创建类对象
        GenericMethod gm = new GenericMethod();
        // 调用含有泛型的普通方法
        System.out.println(gm.method1("", 666));    // 含有泛型的普通方法：666
        System.out.println(gm.method1("", "ABC"));  // 含有泛型的普通方法：ABC
        System.out.println(gm.method1("", 0.999));  // 含有泛型的普通方法：0.999
        // 调用含有泛型的静态方法
        System.out.println(GenericMethod.method2("ss"));     // 一个含有泛型的静态方法ss
        System.out.println(method3(new ArrayList<String>(), "123"));    // 123
    }
}
